package com.yunji.news.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yunji.news.entity.Article;

import java.util.List;
import java.util.Map;

/**
 * 文章服务接口
 *
 * @author yunji
 * @since 2024-11-23
 */
public interface ArticleService extends IService<Article> {
    
    /**
     * 分页查询文章列表
     */
    IPage<Article> getArticlePage(Integer page, Integer size, Long categoryId, Long schoolId, 
                                  Integer isTop, Integer isHot, String keyword);
    
    /**
     * 根据分类代码获取文章列表
     */
    List<Article> getArticlesByCategoryCode(String categoryCode, Integer limit);
    
    /**
     * 获取首页推荐内容
     */
    Map<String, List<Article>> getHomeRecommended();
    
    /**
     * 获取热门文章
     */
    List<Article> getHotArticles(Integer limit);
    
    /**
     * 增加浏览次数
     */
    void increaseViewCount(Long id);
    
    /**
     * 发布文章
     */
    boolean publishArticle(Long id);
    
    /**
     * 下线文章
     */
    boolean unpublishArticle(Long id);
    
    /**
     * 创建文章
     */
    boolean createArticle(Article article);
    
    /**
     * 更新文章
     */
    boolean updateArticle(Article article);
    
    /**
     * 删除文章
     */
    boolean deleteArticle(Long id);
}